package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.SpiderMonitor;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2023-09-22 22:03:55
*   @description SpiderMonitorSearch      爬虫监控
*/


@Data
@ApiModel("爬虫监控SpiderMonitorSearch")
public abstract class SpiderMonitorSearch<Sub extends SpiderMonitorSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer versionEq;
    @ApiModelProperty(value = "名称")
    private String nameLike;
    @ApiModelProperty(value = "员工ID")
    private String adminIdEq;
    @ApiModelProperty(value = "员工姓名")
    private String adminTruenameLike;
    @ApiModelProperty(value = "开始启动时间")
    private Date startTimeStart;
    @ApiModelProperty(value = "结束启动时间")
    private Date startTimeEnd;
    @ApiModelProperty(value = "开始结束时间")
    private Date endTimeStart;
    @ApiModelProperty(value = "结束结束时间")
    private Date endTimeEnd;
    @ApiModelProperty(value = "状态 0:初始化:init,1:运行中:running,2:结束:stopped")
    private List statusIn;
    @ApiModelProperty(value = "订阅任务ID")
    private String talentSubscriptionTaskIdEq;
    @ApiModelProperty(value = "爬取数据类型 0:职位:job,1:公司:company,2:简历:resume")
    private List dataTypeIn;
    @ApiModelProperty(value = "大于成功页数")
    private Integer sussPageGreater;
    @ApiModelProperty(value = "小于成功页数")
    private Integer sussPageLess;
    @ApiModelProperty(value = "大于失败页数")
    private Integer errorPageGreater;
    @ApiModelProperty(value = "小于失败页数")
    private Integer errorPageLess;

    public SpiderMonitorSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return SpiderMonitor.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return SpiderMonitor.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return SpiderMonitor.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return SpiderMonitor.ID;
    }

    @Override
    public String  toString() {
        return "SpiderMonitorSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(SpiderMonitor.ID, idIn);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(SpiderMonitor.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(SpiderMonitor.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(SpiderMonitor.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(SpiderMonitor.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVersionEq(Integer versionEq){
        this.versionEq = versionEq;
        setEqualField(SpiderMonitor.VERSION, versionEq);
        return getSubThis();
    }
    public Sub setNameLike(String nameLike){
        this.nameLike = nameLike;
        setLikeField(SpiderMonitor.NAME, nameLike);
        return getSubThis();
    }
    public Sub setAdminIdEq(String adminIdEq){
        this.adminIdEq = adminIdEq;
        setEqualField(SpiderMonitor.ADMIN_ID, adminIdEq);
        return getSubThis();
    }
    public Sub setAdminTruenameLike(String adminTruenameLike){
        this.adminTruenameLike = adminTruenameLike;
        setLikeField(SpiderMonitor.ADMIN_TRUENAME, adminTruenameLike);
        return getSubThis();
    }
    public Sub setStartTimeStart(Date startTimeStart){
        this.startTimeStart = startTimeStart;
        setDateStartField(SpiderMonitor.START_TIME, startTimeStart);
        return getSubThis();
    }
    public Sub setStartTimeEnd(Date startTimeEnd){
        this.startTimeEnd = startTimeEnd;
        setDateEndField(SpiderMonitor.START_TIME, startTimeEnd);
        return getSubThis();
    }
    public Sub setEndTimeStart(Date endTimeStart){
        this.endTimeStart = endTimeStart;
        setDateStartField(SpiderMonitor.END_TIME, endTimeStart);
        return getSubThis();
    }
    public Sub setEndTimeEnd(Date endTimeEnd){
        this.endTimeEnd = endTimeEnd;
        setDateEndField(SpiderMonitor.END_TIME, endTimeEnd);
        return getSubThis();
    }
    public Sub setStatusIn(List statusIn){
        this.statusIn = statusIn;
        setInField(SpiderMonitor.STATUS, statusIn);
        return getSubThis();
    }
    public Sub setTalentSubscriptionTaskIdEq(String talentSubscriptionTaskIdEq){
        this.talentSubscriptionTaskIdEq = talentSubscriptionTaskIdEq;
        setEqualField(SpiderMonitor.TALENT_SUBSCRIPTION_TASK_ID, talentSubscriptionTaskIdEq);
        return getSubThis();
    }
    public Sub setDataTypeIn(List dataTypeIn){
        this.dataTypeIn = dataTypeIn;
        setInField(SpiderMonitor.DATA_TYPE, dataTypeIn);
        return getSubThis();
    }
    public Sub setSussPageGreater(Integer sussPageGreater){
        this.sussPageGreater = sussPageGreater;
        setGreaterField(SpiderMonitor.SUSS_PAGE, sussPageGreater);
        return getSubThis();
    }
    public Sub setSussPageLess(Integer sussPageLess){
        this.sussPageLess = sussPageLess;
        setLessField(SpiderMonitor.SUSS_PAGE, sussPageLess);
        return getSubThis();
    }
    public Sub setErrorPageGreater(Integer errorPageGreater){
        this.errorPageGreater = errorPageGreater;
        setGreaterField(SpiderMonitor.ERROR_PAGE, errorPageGreater);
        return getSubThis();
    }
    public Sub setErrorPageLess(Integer errorPageLess){
        this.errorPageLess = errorPageLess;
        setLessField(SpiderMonitor.ERROR_PAGE, errorPageLess);
        return getSubThis();
    }
}